import {get_cookie} from 'assets/cookie/cookie'
let ua = window.navigator.userAgent.toLowerCase();

if (ua.search(/MicroMessenger/i)!==-1) {
  if(!get_cookie('weixinKey')){
    location.href='https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe8c1f17e5314441a&redirect_uri=https://m.mingpinjiancai.com&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect'
  }
}

import 'babel-polyfill'
import Vue from 'vue'
import App from './App'
import router from './router'
import VueLazyload from 'vue-lazyload'
import 'swiper/dist/css/swiper.css'
import 'assets/sass/index.scss'
import store from './store'
import { Toast, Indicator } from 'mint-ui'
import 'mint-ui/lib/style.css'
import wxSdk from 'weixin-js-sdk'
import * as recommend from 'api/recommend'

Vue.prototype.$toast = Toast
Vue.prototype.$indicator = Indicator
Vue.prototype.$wxShareConfig = () => {
  recommend.getSharedConfigInfo().then(resault => {
    if (resault.status === 200 && resault.data.data !== null) {
      wxSdk.config({
        debug: false, // 开启调试模式,开发时可以开启
        appId: resault.data.data.appId,   // 必填，公众号的唯一标识   由接口返回
        timestamp: resault.data.data.timestamp, // 必填，生成签名的时间戳 由接口返回
        nonceStr: resault.data.data.nonceStr,    // 必填，生成签名的随机串 由接口返回
        signature: resault.data.data.signature,   // 必填，签名 由接口返回
        jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline', 'onMenuShareQQ', 'onMenuShareQZone'] // 此处填你所用到的方法
      })
    }
  }).catch(resault => {
    console.log(resault)
  })
}
Vue.prototype.$wxShared = function (url, title, description, iconUrl) {
  wxSdk.ready(function () {
    wxSdk.onMenuShareAppMessage({ // 分享给朋友
      title: title,         // 分享标题
      desc: description,    // 分享描述
      link: url,            // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      imgUrl: iconUrl,      // 分享图标
      success: function () {
        // 用户确认分享后执行的回调函数
        this.$toast({
          message: '分享成功',
          position: 'middle',
          duration: 1000,
          className: 'toast'
        })
      },
      cancel: () => {
        // 用户确认分享后执行的回调函数
        this.$toast({
          message: '取消分享',
          position: 'middle',
          duration: 1000,
          className: 'toast'
        })
      }
    })

    wxSdk.onMenuShareTimeline({ // 分享到朋友圈
      title: title,     // 分享标题
      link: url,        // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      imgUrl: iconUrl,  // 分享图标
      success: function () {
        // 用户确认分享后执行的回调函数
        this.$toast({
          message: '分享成功',
          position: 'middle',
          duration: 1000,
          className: 'toast'
        })
      },
      cancel: function () {
        // 用户取消分享后执行的回调函数
        this.$toast({
          message: '取消分享',
          position: 'middle',
          duration: 1000,
          className: 'toast'
        })
      }
    })

    wxSdk.onMenuShareQQ({ // 分享到qq
      title: title,       // 分享标题
      desc: description,  // 分享描述
      link: url,          // 分享链接
      imgUrl: iconUrl,    // 分享图标
      success: function () {
        // 用户确认分享后执行的回调函数
        this.$toast({
          message: '分享成功',
          position: 'middle',
          duration: 1000,
          className: 'toast'
        })
      },
      cancel: function () {
        // 用户取消分享后执行的回调函数
        this.$toast({
          message: '取消分享',
          position: 'middle',
          duration: 1000,
          className: 'toast'
        })
      }
    })

    wxSdk.onMenuShareQZone({
      title: title,       // 分享标题
      desc: description,  // 分享描述
      link: url,          // 分享链接
      imgUrl: iconUrl,    // 分享图标
      success: function () {
        // 用户确认分享后执行的回调函数
        this.$toast({
          message: '分享成功',
          position: 'middle',
          duration: 1000,
          className: 'toast'
        })
      },
      cancel: function () {
        // 用户取消分享后执行的回调函数
        this.$toast({
          message: '取消分享',
          position: 'middle',
          duration: 1000,
          className: 'toast'
        })
      }
    })
  })

  wxSdk.error(function(res) { // 通过error接口处理失败验证
    // config信息验证失败会执行error函数
    this.$toast({
      message: '签名验证失败',
      position: 'middle',
      duration: 1000,
      className: 'toast'
    })
  })
}

Vue.use(VueLazyload, {
  preLoad: 0,
  attempt: 5,
  loading: require("assets/img/loading.png")
})
let vm = new Vue({
  store,
  router,
  el: '#app',
  render: h => h(App)
})

Vue.use({
  vm
})
